package org.ehe.finance.voucher.domain.bo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
/**
 * 记账凭证明细查询业务对象
 * @author :zhangnn
 * @className :VoucherDetailQueryBo
 * @description: TODO
 * @date 2025-08-25 13:15:43
 */

@Data
public class VoucherDetailQueryBo {
    @Schema(description = "凭证ID")
    private Long voucherId;

    @Schema(description = "凭证号")
    private String voucherNo;

    @Schema(description = "会计科目ID")
    private Long subjectId;

    @Schema(description = "会计科目编码")
    private String subjectCode;

    @Schema(description = "客户ID")
    private Long customerId;

    @Schema(description = "供应商ID")
    private Long supplierId;

    @Schema(description = "员工ID")
    private Long employeeId;

    @Schema(description = "项目ID")
    private Long projectId;

    @Schema(description = "部门ID")
    private Long departmentId;

    @Schema(description = "币种ID")
    private Long currencyId;

    @Schema(description = "借方金额最小值")
    private BigDecimal debitAmountMin;

    @Schema(description = "借方金额最大值")
    private BigDecimal debitAmountMax;

    @Schema(description = "贷方金额最小值")
    private BigDecimal creditAmountMin;

    @Schema(description = "贷方金额最大值")
    private BigDecimal creditAmountMax;

    @Schema(description = "摘要关键字")
    private String abstractKeyword;

    @Schema(description = "当前页码")
    @Min(value = 1, message = "页码必须大于0")
    private Long current = 1L;

    @Schema(description = "每页数量")
    @Min(value = 1, message = "每页数量必须大于0")
    @Max(value = 500, message = "每页数量不能超过500")
    private Long size = 10L;
}
